#pragma once

#include "ChatCommandTrigger.h"

namespace ai
{
    class ChatTriggerContext : public NamedObjectContext<Trigger>
    {
    public:
        ChatTriggerContext()
        {
            creators["quests"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "quests"); };
            creators["quest reward"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "quest reward"); };
            creators["stats"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "stats"); };
            creators["leave"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "leave"); };
            creators["rep"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "reputation"); };
            creators["reputation"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "reputation"); };
            creators["log"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "log"); };
            creators["los"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "los"); };
            creators["drop"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "drop"); };
            creators["roll"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "roll"); };
            creators["share"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "share"); };
            creators["q"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "q"); };
            creators["ll"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "ll"); };
            creators["ss"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "ss"); };
            creators["loot"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "add all loot"); };
            creators["add all loot"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "add all loot"); };
            creators["release"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "release"); };
            creators["teleport"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "teleport"); };
            creators["taxi"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "taxi"); };
            creators["repair"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "repair"); };
            creators["u"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "use"); };
            creators["use"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "use"); };
            creators["c"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "c"); };
            creators["items"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "c"); };
            creators["inventory"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "c"); };
            creators["inv"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "c"); };
            creators["e"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "e"); };
            creators["equip"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "e"); };
            creators["keep"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "keep"); };
            creators["ue"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "ue"); };
            creators["s"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "s"); };
            creators["b"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "b"); };
            creators["bb"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "bb"); };
            creators["r"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "r"); };
            creators["t"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "t"); };
            creators["nt"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "nt"); };
            creators["talents"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "talents"); };
            creators["spells"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "spells"); };
            creators["co"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "co"); };
            creators["nc"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "nc"); };
            creators["de"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "de"); };
            creators["react"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "react"); };
            creators["all"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "all"); };
            creators["trainer"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "trainer"); };
            creators["attack"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "attack"); };
            creators["attack rti"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "attack rti"); };
            creators["pull"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "pull"); };
            creators["pull rti"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "pull rti"); };
            creators["chat"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "chat"); };
            creators["accept"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "accept"); };
            creators["home"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "home"); };
            creators["load ai"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "load ai"); };
            creators["list ai"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "list ai"); };
            creators["save ai"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "save ai"); };
            creators["reset ai"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "reset ai"); };
            creators["reset strats"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "reset strats"); };
            creators["reset values"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "reset values"); };
            creators["destroy"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "destroy"); };
            creators["emote"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "emote"); };
            creators["buff"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "buff"); };
            creators["help"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "help"); };
            creators["gb"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "gb"); };
            creators["gbank"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "gb"); };
            creators["bank"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "bank"); };
            creators["follow"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "follow"); };
            creators["stay"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "stay"); };
            creators["guard"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "guard"); };
            creators["free"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "free"); };
            creators["wait for attack time"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "wait for attack time"); };
            creators["pet"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "pet"); };
            creators["focus heal"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "focus heal"); };
            creators["follow target"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "follow target"); };
            creators["boost target"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "boost target"); };
            creators["buff target"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "buff target"); };
            creators["revive target"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "revive target"); };
            creators["self res"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "self res"); };
            creators["flee"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "flee"); };
            creators["grind"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "grind"); };
            creators["tank attack"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "tank attack"); };
            creators["talk"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "talk"); };
            creators["cast"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "cast"); };
            creators["castnc"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "castnc"); };
            creators["invite"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "invite"); };
            creators["join"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "join"); };
            creators["lfg"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "lfg"); };
            creators["spell"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "spell"); };
            creators["rti"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "rti"); };
            creators["revive"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "revive"); };
            creators["runaway"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "runaway"); };
            creators["warning"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "warning"); };
            creators["position"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "position"); };
            creators["summon"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "summon"); };
            creators["who"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "who"); };
            creators["save mana"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "save mana"); };
            creators["max dps"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "max dps"); };
            creators["possible attack targets"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "possible attack targets"); };
            creators["attackers"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "attackers"); };
            creators["formation"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "formation"); };
            creators["stance"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "stance"); };
            creators["sendmail"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "sendmail"); };
            creators["mail"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "mail"); };
            creators["outfit"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "outfit"); };
            creators["go"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "go"); };
            creators["ready"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "ready check"); };
            creators["debug"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "debug"); };
            creators["cdebug"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "cdebug"); };
            creators["cs"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "cs"); };
            creators["wts"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "wts"); };
            creators["hire"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "hire"); };
            creators["craft"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "craft"); };
            creators["flag"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "flag"); };
            creators["range"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "range"); };
            creators["ra"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "ra"); };
            creators["give leader"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "give leader"); };
            creators["cheat"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "cheat"); };
            creators["rtsc"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "rtsc"); };
            creators["ah"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "ah"); };
            creators["ah bid"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "ah bid"); };
            creators["guild invite"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "guild invite"); };
            creators["guild join"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "guild join"); };
            creators["guild promote"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "guild promote"); };
            creators["guild demote"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "guild demote"); };
            creators["guild remove"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "guild remove"); };
            creators["guild leave"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "guild leave"); };
            creators["guild leader"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "guild leader"); };
            creators["bg free"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "bg free"); };
            creators["move style"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "move style"); };
            creators["jump"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "jump"); };
            creators["doquest"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "doquest");  };
            creators["skill"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "skill");  };
            creators["faction"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "faction");  };
            creators["set value"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "set value");  };
            creators["glyph"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "glyph");  };
            creators["speak"] = [](PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "speak"); };
        }
    };
};
